// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_NATIVE_THEME_NATIVE_THEME_MAC_H_
#define UI_NATIVE_THEME_NATIVE_THEME_MAC_H_

#include "base/macros.h"
#include "ui/native_theme/native_theme_base.h"
#include "ui/native_theme/native_theme_export.h"

namespace ui {

// Mac implementation of native theme support.
class NATIVE_THEME_EXPORT NativeThemeMac : public NativeThemeBase {
public:
    static NativeThemeMac* instance();

    // Overridden from NativeTheme:
    SkColor GetSystemColor(ColorId color_id) const override;

    // Overridden from NativeThemeBase:
    void PaintScrollbarTrack(SkCanvas* canvas,
        Part part,
        State state,
        const ScrollbarTrackExtraParams& extra_params,
        const gfx::Rect& rect) const override;
    void PaintScrollbarThumb(SkCanvas* sk_canvas,
        Part part,
        State state,
        const gfx::Rect& rect) const override;
    void PaintScrollbarCorner(SkCanvas* canvas,
        State state,
        const gfx::Rect& rect) const override;
    void PaintMenuPopupBackground(
        SkCanvas* canvas,
        const gfx::Size& size,
        const MenuBackgroundExtraParams& menu_background) const override;
    void PaintMenuItemBackground(
        SkCanvas* canvas,
        State state,
        const gfx::Rect& rect,
        const MenuListExtraParams& menu_list) const override;

private:
    NativeThemeMac();
    ~NativeThemeMac() override;

    DISALLOW_COPY_AND_ASSIGN(NativeThemeMac);
};

} // namespace ui

#endif // UI_NATIVE_THEME_NATIVE_THEME_MAC_H_
